﻿using System;
using System.Resources;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.Utilities;

namespace SharePointOfView.SPReporting
{
    /// <summary>
    /// Global variables
    /// </summary>
    public sealed class Globals
    {
        #region ChartSeries enum
        /// <summary>
        /// Kind of Charts
        /// </summary>
        public enum ChartSeries
        {
            Bar,
            Column,
            Pie,
            Line,
            Scatter,
            Grid,
            KPI
        }
        #endregion
        /// <summary>
        /// Internal Name of the Timer Service
        /// </summary>
        public static readonly string SPTimerServiceName = "SPTimerV3";
        /// <summary>
        /// SPReporting Farm Feature Id
        /// </summary>
        public static readonly Guid SPReportingFarmFeatureId = new Guid("{2DE6360A-53A0-4d4a-BEFD-911C5F2469E1}");
        /// <summary>
        /// SPReporting Web Feature Id
        /// </summary>
        public static readonly Guid SPReportingWebFeatureId = new Guid("{EE20FDFF-1D4B-4586-99B6-19A078AC74BC}");
        /// <summary>
        /// SPReporting Log Category 
        /// </summary>
        public static readonly string LogCategory = "SoVSPReporting - ReportHandler";
        /// <summary>
        /// Cache Duration for Xslt files (Report Models)
        /// </summary>
        public static readonly int ReportXsltCacheDurationInMinutes = 10;
        /// <summary>
        /// Default resource filename for SharePoint Of View - SPReporting
        /// </summary>
        public static readonly string DefaultResourceFilename = "SoVSPReporting";
        /// <summary>
        /// Default picture for Feature 
        /// </summary>
        public static readonly string DefaultFeatureImage = "GenericFeature.gif";
        /// <summary>
        /// Reporting Models Template Type ID
        /// </summary>
        public static readonly int ReportingModelsTemplateType = 25977;

        #region Features Properties Names
        /// <summary>
        /// Reports Center Url stored in the SoV.SPReporting feature (Farm scoped)
        /// </summary>
        public static readonly string ReportsCenterUrlFeaturePropertyName = "ReportsCenterUrl";
        #endregion

        #region Job variables
        public const string JobAssemblyNameFeaturePropertyName = "JobAssemblyName";
        public const string JobDisplayNameFeaturePropertyName = "JobDisplayName";
        public const string JobNameFeaturePropertyName = "JobName";
        public const string JobReportSourceFeaturePropertyName = "JobReportSource";
        public const string JobScheduleBeginFeaturePropertyName = "JobScheduleBegin";
        public const string JobScheduleEndFeaturePropertyName = "JobScheduleEnd";
        public const string JobScheduleIntervalFeaturePropertyName = "JobScheduleInterval";
        public const string JobScheduleTypeFeaturePropertyName = "JobScheduleType";
        public const string JobTypeNameFeaturePropertyName = "JobTypeName";
        public const string JobScopeFeaturePropertyName = "JobLockType";
        public const string IsSoVSPReportingFeaturePropertyName = "IsSoVSPReportingFeature";
        #endregion

    }
}
